﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using Hiro.Interfaces;

namespace Hiro.ActivationPoints.Interfaces
{
    /// <summary>
    /// Represents an activation point that is used whenever a constructor needs to be invoked.
    /// </summary>
    public interface IConstructorActivationPoint : IActivationPoint
    {
        /// <summary>
        /// Gets the value indicating the target type that holds the target constructor.
        /// </summary>
        /// <value>The declaring type of the target constructor.</value>
        Type TargetType { get; }

        /// <summary>
        /// Gets the value indicating the constructor that will be used with this activation point.
        /// </summary>
        /// <value>The constructor that will be used to instantiate the target type.</value>
        ConstructorInfo TargetConstructor { get; }
    }
}
